package {{basePackage}}.service;

import {{basePackage}}.entity.{{entityName}};
import {{basePackage}}.dto.{{entityName}}DTO;
import {{basePackage}}.vo.{{entityName}}VO;
import {{basePackage}}.common.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * {{tableComment}} 服务接口
 * 
 * @author {{author}}
 * @version {{version}}
 * @since {{createTime}}
 */
public interface {{entityName}}Service extends IService<{{entityName}}> {

    /**
     * 分页查询{{tableComment}}
     *
     * @param pageNum 页码
     * @param pageSize 页面大小
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    PageResult<{{entityName}}VO> page(Integer pageNum, Integer pageSize, {{entityName}}DTO queryDTO);

    /**
     * 根据ID查询{{tableComment}}详情
     *
     * @param id {{tableComment}}ID
     * @return {{tableComment}}详情
     */
    {{entityName}}VO getById(Long id);

    /**
     * 创建{{tableComment}}
     *
     * @param {{#lowerCase}}{{entityName}}{{/lowerCase}}DTO {{tableComment}}信息
     * @return 创建的{{tableComment}}
     */
    {{entityName}}VO create({{entityName}}DTO {{#lowerCase}}{{entityName}}{{/lowerCase}}DTO);

    /**
     * 更新{{tableComment}}
     *
     * @param id {{tableComment}}ID
     * @param {{#lowerCase}}{{entityName}}{{/lowerCase}}DTO {{tableComment}}信息
     * @return 更新的{{tableComment}}
     */
    {{entityName}}VO update(Long id, {{entityName}}DTO {{#lowerCase}}{{entityName}}{{/lowerCase}}DTO);

    /**
     * 删除{{tableComment}}
     *
     * @param id {{tableComment}}ID
     */
    void delete(Long id);

    /**
     * 批量删除{{tableComment}}
     *
     * @param ids {{tableComment}}ID列表
     */
    void batchDelete(List<Long> ids);

    // 关联关系查询方法将在后续版本中支持
}
